package com.geilizu.dom.dao;

import com.geilizu.dom.dto.AbsentDto;
import com.geilizu.dom.dto.DoSearchDto;
import com.geilizu.dom.dto.DormitoryDto;
import com.geilizu.dom.entity.Dormitory;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * (Dormitory)表数据库访问层
 *
 * @author makejava
 * @since 2022-07-12 17:27:05
 */
public interface DormitoryDao {



    /**
     * 通过楼宇id宿舍信息
     * @param id
     * @return
     */
    List<Dormitory> list(@Param("id") Integer id);



    List<Dormitory> queryAll();

    /**
     * 添加宿舍
     * @param dormitory
     * @return
     */
    Integer save(@Param("do") Dormitory dormitory);

    /**
     * 宿舍信息列表
     * @param page
     * @param size
     * @return
     */
    List<DormitoryDto> listDo(@Param("page") Integer page,@Param("size") Integer size);

    /**
     * 宿舍信息列表数量
     * @return
     */
    Long listDoCount();

    /**
     * 根据宿舍名或电话查询宿舍信息
     * @param search
     * @return
     */
    List<DormitoryDto> queryByValue(@Param("search") DoSearchDto search);

    /**
     * 根据宿舍名或电话查询宿舍信息数量
     * @param search
     * @return
     */
    Long queryByValueCount(@Param("search") DoSearchDto search);

    /**
     * 通过id查询宿舍信息
     * @param id
     * @return
     */
    Dormitory findById(@Param("id") Integer id);

    /**
     * 通过id修改数据
     * @param dormitory
     * @return
     */
    Integer updateById(@Param("dormitory") Dormitory dormitory);

    /**
     * 更新宿舍剩余容量
     * @param doId
     */
    void updateAviableAdd(@Param("id") Integer doId);
}

